from math import *
from numpy import *
import pandas as pd

mu_rojo = 1.4560
mu_verde = 1.4519
t = 0.003
c = 2.99 * 10**8
h = 6.63*10**-34

# NORMAL

df = pd.read_csv("datos_zeeman_normal.csv")
I = df["intensidad"]
circulo = df["circulo"]
circulin = df["subcirculo"]
r = df["radio"]

def B(I):
    b, c, d = 60.0, 1.58, -0.13
    B = b*I + c*I**2 + d*I**3   # mT
    s_B = 0.5   # mT
    return B, s_B

def magneton_bohr(delta, Delta, B, mu):
    mu_B = (delta*c*h)/(Delta*2*mu*t*B)
    return mu_B


delta = []
Delta = []
I_lista = []
for i in range(len(r)-3):
    if circulin[i] < circulin[i+1] and circulo[i] < circulo[i+3]:
        delta.append(r[i]**2 - r[i+1]**2)
        Delta.append(r[i]**2 - r[i+3]**2)
        I_lista.append(I[i])

magneton = []
for k in range(len(delta)):
    magneton.append(magneton_bohr(delta[k], Delta[k], B(I_lista[k])[0]*10**-3, mu_rojo))

print(f"mu_b = {mean(magneton):.2e} J/T")

# ANORMAL
# 1 2 3 7 8 9 PV
# 4 5 6 PH

df = pd.read_csv("datos_zeeman_anomalo.csv")
# PV: 7.72 y 8.18  dan bien
# PH: todos estan bien

I_A = df["intensidad"]
circulo_A = df["circulo"]
circulin_A = df["subcirculo"]
r_A = df["radio"]
polarizacion = df["polarizacion"]

